class Solution:
    def countWays(self, nums: list[int]) -> int:
        """
        给你一个下标从 0 开始、长度为 n 的整数数组 nums ，其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生：
        如果能够满足下述两个条件之一，则认为第 i 位学生将会保持开心：
        这位学生被选中，并且被选中的学生人数 严格大于 nums[i] 。
        这位学生没有被选中，并且被选中的学生人数 严格小于 nums[i] 。
        返回能够满足让所有学生保持开心的分组方法的数目。

        :param nums:
        :return:
        """
        #先排序，然后找（数字小的应该被选中才开心，数字大的不被选中容易开心）
        #那么先选择小于某个值的
        #选中1 ，被选中人数为1 应该大于数字1 不行  --》 意思是先找最小值，最少不被选中人数与最小值有关，最少选中人数为最小值+1，然后逐步放大，最多选中人数与最大值有关，如果最大值
        #选中2 ，被选中的人数






if __name__ == '__main__':
    test = Solution()
    print(test.countWays([1, 2, 3, 4, 6]))